package action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Board;
import dao.BoardDAO;

public class BoardListAction implements Action {

	@Override
	public ActionForward execute(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		// db에서 list를 불러와서 jsp에 보내는 역활 p402
		BoardDAO boarddao=new BoardDAO();
		List<Board> boardList=new ArrayList<Board>();
		
		int page=1; // 기본값 , 리스트페이지를 열면 1페이지가 열려라
		int limit=10; //한 페이지당 10개씩 나와라
		if(request.getParameter("page")!=null){
			page=Integer.parseInt(request.getParameter("page"));
		}
		int listCount=boarddao.getListCount(); //글의 수
		boardList=boarddao.getBoardList(page, limit);
		
		//목록넘버를 만듭니다 
		//페이지 맥스값 : (총글의수-1)/페이지수+1
		int maxpage=(listCount-1)/limit+1;
		int startpage=(int) (((page/10+0.9)-1)*10+1);
		int endpage=startpage+10-1;
		if(endpage>maxpage)endpage=maxpage;
		
		System.out.printf(
			"\n maxpage: %d, startpage: %d , endpage: %d ",
			 maxpage,startpage,endpage);
		
		//jsp 파일에 전달합니다
		request.setAttribute("page", page); //현재 페이지 수
		request.setAttribute("maxpage", maxpage);//최대 페이지 수
		request.setAttribute("startpage",startpage);//현재 페이지 수
		request.setAttribute("endpage", endpage);
		request.setAttribute("listcount",listCount);//글수
		request.setAttribute("boardlist",boardList);//데이터 
		
		// 어떤 jsp에게 어떤 방식으로 이동할까
		ActionForward forward=new ActionForward();
		forward.setRedirect(false); //직접 이동한다
		forward.setPath("./board/qna_board_list.jsp");
		return forward;
	}

}
